package com.kk.xhr.admin.biz;

import com.kk.xhr.admin.controller.request.DepartmentAddRequest;
import com.kk.xhr.admin.controller.request.DepartmentModifyRequest;
import com.kk.xhr.admin.controller.vo.DepartmentTreeVO;
import com.kk.xhr.admin.controller.vo.TeamVO;
import com.kk.xhr.common.pojo.BinaryEnum;

/**
 * 部门biz服务接口
 *
 * @author kkmystery
 * @version 1.0 2021/3/5
 * @since 1.0.0
 */
public interface IDepartmentBizService {

    /**
     * 查询部门
     *
     * @return PositionVO列表
     */
    DepartmentTreeVO query(Long id);

    /**
     * 查询部门成员
     *
     * @param userId 用户id
     * @return 部门成员
     */
    TeamVO queryTeam(Long userId);

    /**
     * 添加部门
     *
     * @param request 部门添加request
     */
    void add(DepartmentAddRequest request);

    /**
     * 修改部门
     *
     * @param id      主键id
     * @param request 部门修改request
     * @return 是否成功
     */
    void modify(Long id, DepartmentModifyRequest request);

    /**
     * 修改部门状态
     *
     * @param id     主键id
     * @param status 状态
     * @return 是否成功
     */
    boolean modifyStatus(Long id, BinaryEnum status);

    /**
     * 确认是否为部门负责人
     *
     * @param userId 用户id
     * @return 是否
     */
    boolean checkLeader(Long userId);
}
